from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
from utils.models import BaseModel


class User(AbstractUser):
    mobile=models.CharField(max_length=11,unique=True)
    email_active =models.BooleanField(default=False,verbose_name='邮箱激活状态')
    default_address = models.ForeignKey('Address', related_name='users', null=True, blank=True,
                                        on_delete=models.SET_NULL, verbose_name='默认地址')
    nickname=models.CharField(max_length=10,unique=True,verbose_name='昵称',null=True)
    img_header=models.ImageField(max_length=200, default='', null=True, blank=True, verbose_name='头像',
                                      upload_to='org/%Y/%m')
    qq_num=models.CharField(max_length=10,verbose_name='手机',null=True)
    SEX_CHOICES = (
            (0, "女生"),
            (1, "男生"),
        )
    sex_gender=models.IntegerField(default=0, choices=SEX_CHOICES)
    BALL_AGE=(
            (0, "1年以下"),
            (1, "1-3年"),
            (2,"3-5年"),
            (3,'5年以上')
        )
    ball_age=models.IntegerField(default=0, choices=BALL_AGE,verbose_name='球龄')
    intro=models.CharField(max_length=50,null=True,verbose_name='个人简介')
    class Meta:
        db_table='tb_users'
        verbose_name='用户管理'
        verbose_name_plural=verbose_name
    def __str__(self):
        return self.username

class Address(BaseModel):
    """用户地址"""
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='addresses', verbose_name='用户')
    title = models.CharField(max_length=20, verbose_name='地址名称')
    receiver = models.CharField(max_length=20, verbose_name='收货人')
    province = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='province_addresses', verbose_name='省')
    city = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='city_addresses', verbose_name='市')
    district = models.ForeignKey('areas.Area', on_delete=models.PROTECT, related_name='district_addresses', verbose_name='区')
    place = models.CharField(max_length=50, verbose_name='地址')
    mobile = models.CharField(max_length=11, verbose_name='手机')
    tag=models.CharField(max_length=10,verbose_name='标签',default='学校')
    is_deleted = models.BooleanField(default=False, verbose_name='逻辑删除')
    post_code =models.CharField(max_length=11,verbose_name='邮政编码')
    class Meta:
        db_table = 'tb_address'
        verbose_name = '用户地址'
        verbose_name_plural = verbose_name
        ordering = ['-update_time']
